<?php
/**
 * 应用异常类
 * 用于统一处理应用中的各种异常
 */
namespace core;

class AppException extends \Exception {
    // 异常类型常量
    const CONTROLLER_NOT_FOUND = 404;
    const METHOD_NOT_FOUND = 404;
    const FILE_NOT_FOUND = 404;
    const SYSTEM_ERROR = 500;
    const PERMISSION_DENIED = 403;

    // 异常数据
    protected $data;

    /**
     * 构造函数
     * @param string $message 异常消息
     * @param int $code 异常代码
     * @param mixed $data 附加数据
     * @param \Exception|null $previous 前一个异常
     */
    public function __construct($message = '', $code = 0, $data = null, \Exception $previous = null) {
        parent::__construct($message, $code, $previous);
        $this->data = $data;
    }

    /**
     * 获取附加数据
     * @return mixed
     */
    public function getData() {
        return $this->data;
    }
}